package leetcode.editor.cn;

//给定一个字符串，你需要反转字符串中每个单词的字符顺序，同时仍保留空格和单词的初始顺序。 
//
// 
//
// 示例： 
//
// 输入："Let's take LeetCode contest"
//输出："s'teL ekat edoCteeL tsetnoc"
// 
//
// 
//
// 提示： 
//
// 
// 在字符串中，每个单词由单个空格分隔，并且字符串中不会有任何额外的空格。 
// 
// Related Topics 双指针 字符串 👍 367 👎 0

//Java：反转字符串中的单词 III
public class ReverseWordsInAStringIii_557{
    public static void main(String[] args) {
        Solution solution = new ReverseWordsInAStringIii_557().new Solution();
        // TO TEST
        String s="abcdefg";
        System.out.println(s.substring(2,7));
    }
    
    //leetcode submit region begin(Prohibit modification and deletion)
class Solution {
    public String reverseWords(String s) {
        int length = s.length();
        StringBuffer res = new StringBuffer();
        int left=0,right=0;
        while(left<length){
            right++;
            if(right==length || s.charAt(right)==' '){
                if(left!=0) res.append(" ");
                res.append(new StringBuffer(s.substring(left,right)).reverse());
                left = ++right;
            }
        }
        return res.toString();
    }
}
//leetcode submit region end(Prohibit modification and deletion)

}
